package com.itheima.config;

import com.itheima.interceptor.MyInterceptor;
import com.itheima.interceptor.MyInterceptor1;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.*;

@Configuration
@ComponentScan({"com.itheima.controller","com.itheima.error"})
@EnableWebMvc
public class MvcConfig implements WebMvcConfigurer {

    //handleMapping handlerAdapter json转化器
    //视图解析器 指定前后缀

    @Override
    public void configureViewResolvers(ViewResolverRegistry registry){
        //registry 可以快速添加前后缀
        registry.jsp("/WEB-INF/views/",".jsp");
        //handle -> index
    }

    //开启静态资源查找
    //dispatcherServlet -> handlerMapping找有没有对应的handle -> 没有 -> 找有没有静态资源
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer){
        configurer.enable();
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //配置方案1: 拦截全部请求
        //registry.addInterceptor(new MyInterceptor());

        //配置方案2:指定地址拦截.addPathPatterns("/user/data");
        //   *  注意一层字符串  **任意多层字符串
//         registry.addInterceptor(new MyInterceptor())
//                .addPathPatterns("/user/**");

        //配置方案3:排除拦截 排除的地址应该在拦截地址内部
        //registry.addInterceptor(new MyInterceptor())
        //       .addPathPatterns("/user/**").excludePathPatterns("/user/data1");

        registry.addInterceptor(new MyInterceptor());
        registry.addInterceptor(new MyInterceptor1());
    }
}
